import { defineStore } from 'pinia';
import { computed, ref } from 'vue'
import { User } from '@/types/user'

/**
 * 用户信息
 */
export const useUserStore = defineStore('user', () => {
	/**
	 * 用户信息
	 */
	const user = ref<User>({ token: '', username: '' });

	/**
	 * token
	 */
	const token = computed(() => user.value.token)

	/**
	 * 登录回调地址
	 */
	const backUrl = ref('')

	/**
	 * 设置用户信息
	 */
	function setUser(data : User) {
		user.value = data;
	}

	/**
	 * 退出
	 */
	function logout() {
		user.value = {
			token: '',
			username: ''
		}
		backUrl.value = ''
		uni.reLaunch({ url: '/pages/auth/login' })
	}

	return {
		/**
		 * 用户信息
		 */
		user,
		/**
		 * token
		 */
		token,
		/**
		 * 登录回调地址
		 */
		backUrl,
		/**
		 * 设置用户信息
		 */
		setUser,
		/**
		 * 退出
		 */
		logout
	};
}, {
	//持久化
	persist: {
		storage: {
			setItem(key, value) {
				uni.setStorageSync(key, value)
			},
			getItem(key) {
				return uni.getStorageSync(key)
			},
		},
	}
});